# -*- coding: UTF-8 -*-
"""
@File    ：1.初识对象.py
@Author  ：techPang
@Date    ：2025/2/6 10:19 
@Version ：1.0
"""


class Student:
    name = None  # 姓名
    gender = None  # 性别
    age = None  # 年龄
    __money = None  # 私有的属性    私有的属性和方法不可以直接被类对象调用，但是可以被类中的其他成员使用

    # 构造方法，在创建类对象时，会自动执行
    # 在创建类时，将传入参数自动传递给__init__方法使用
    def __init__(self, name, gender, age):
        self.name = name  # 既有赋值的功能，也有定义的功能，可以省略上面的属性定义
        self.gender = gender
        self.age = age

    # 这是一个成员方法，定义成员方法必须有self，表示当前对象，在成员方法内部访问属性，必须使用self
    def do_work(self):
        print(f"{self.name}在工作")
        self.__write_code("认真工作")

    # 私有的成员方法，可以被公共方法调用
    def __write_code(self, msg):
        print(f"在写代码{msg}")

    # 魔术方法 __名字__都是魔术方法
    # 返回内容而不是地址值
    def __str__(self):
        return f"Student name: {self.name}, gender: {self.gender}, age: {self.age}"

    # 返回大于小于的关系 le是大于等于、小于等于的关系 eq比较是否相等
    def __lt__(self, other):
        return self.age < other.age


# 创建对象
stu1 = Student('czt', 'man', 20)
# 对属性赋值
# stu1.name = 'czt'
# stu1.gender = 'man'
# stu1.age = 20
stu1.do_work()
print(stu1)
